/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.util.ObjectUtil
 *  cn.hutool.core.util.StrUtil
 *  com.alibaba.fastjson.JSON
 *  com.alibaba.fastjson.JSONObject
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.ChoiceBox
 *  javafx.scene.control.Pagination
 *  javafx.scene.control.ScrollPane
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableRow
 *  javafx.scene.control.TableView
 *  javafx.scene.control.TextField
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.VBox
 *  javafx.util.Callback
 *  javafx.util.StringConverter
 *  org.springframework.beans.factory.annotation.Autowired
 *  org.springframework.util.CollectionUtils
 */
package com.gys.controller.proEffect;

import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gys.common.business.ProEffectUtil;
import com.gys.common.business.ProductSortSettingUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.data.KeyValue;
import com.gys.common.data.PageInfo;
import com.gys.common.util.ConstUtil;
import com.gys.controller.BaseController;
import com.gys.controller.dataManger.ControllerManger;
import com.gys.controller.index.IndexController;
import com.gys.data.deviceCheck.GsdcStatus;
import com.gys.data.proEffect.ProEffectInData;
import com.gys.data.proEffect.ProEffectOutData;
import com.gys.data.productSortSetting.GetProductSortOutData;
import de.felixroske.jfxsupport.FXMLController;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Pagination;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableRow;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.VBox;
import javafx.util.Callback;
import javafx.util.StringConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;

@FXMLController
public class ProEffectController
extends BaseController
implements Initializable {
    private final int pageSize = ConstUtil.DEFAULT_PAGESIZE;
    private final int defaultPageCount = ConstUtil.DEFAULT_PAGECOUNT;
    private ObservableList<ProEffectOutData> observableTableList = FXCollections.observableArrayList(new ArrayList());
    @FXML
    private Pagination pagination;
    @FXML
    private ChoiceBox<KeyValue> inpEffectDay;
    @FXML
    private TextField inpProCode;
    @FXML
    private ChoiceBox<GetProductSortOutData> inpProClass;
    @FXML
    private TableColumn<ProEffectOutData, String> index;
    @FXML
    private TableColumn<ProEffectOutData, String> gssbBrId;
    @FXML
    private TableColumn<ProEffectOutData, String> proCode;
    @FXML
    private TableColumn<ProEffectOutData, String> proName;
    @FXML
    private TableColumn<ProEffectOutData, String> proSpecs;
    @FXML
    private TableColumn<ProEffectOutData, String> proUnit;
    @FXML
    private TableColumn<ProEffectOutData, String> prcAmount;
    @FXML
    private TableColumn<ProEffectOutData, String> gssbBatchNo;
    @FXML
    private TableColumn<ProEffectOutData, String> gssbBatch;
    @FXML
    private TableColumn<ProEffectOutData, String> gssbVaildDate;
    @FXML
    private TableColumn<ProEffectOutData, String> prcEffectDate;
    @FXML
    private TableColumn<ProEffectOutData, String> supplyCode;
    @FXML
    private TableColumn<ProEffectOutData, String> supplyName;
    @FXML
    private TableColumn<ProEffectOutData, String> proFactoryName;
    @FXML
    private TableColumn<ProEffectOutData, String> proPlace;
    @FXML
    private TableColumn<ProEffectOutData, String> proForm;
    @FXML
    private TableView<ProEffectOutData> tableView;
    @FXML
    private ScrollPane scrollPane;
    @FXML
    private VBox vBox;
    @Autowired
    private IndexController indexController;
    private ObservableList<String> classOptions;
    List<GsdcStatus> proClass = new ArrayList<GsdcStatus>();

    public void initialize(URL location, ResourceBundle resources) {
        this.scrollPane.setPrefWidth(this.getContentWidth());
        this.scrollPane.setPrefHeight(this.getContentHeight());
        this.vBox.setPrefWidth(this.getContentWidth());
        this.vBox.setPrefHeight(this.getContentHeight());
        this.tableView.setPrefWidth(this.getContentWidth());
        this.pagination.setPrefWidth(this.getContentWidth());
        ControllerManger.controllerMap.put(this.getClass().getSimpleName(), this);
        this.pagination.setPageFactory((Callback)new Callback<Integer, Node>(){

            public Node call(Integer pageNum) {
                return ProEffectController.this.initTable(pageNum);
            }
        });
        ArrayList<KeyValue> effectDayList = new ArrayList<KeyValue>();
        effectDayList.add(new KeyValue("\u5c0f\u4e8e\u7b49\u4e8e3\u5929", "3"));
        effectDayList.add(new KeyValue("\u5c0f\u4e8e\u7b49\u4e8e15\u5929", "15"));
        effectDayList.add(new KeyValue("\u5c0f\u4e8e\u7b49\u4e8e30\u5929", "30"));
        this.inpEffectDay.setItems(FXCollections.observableArrayList(effectDayList));
        this.inpEffectDay.converterProperty().set(new StringConverter<KeyValue>(){

            public String toString(KeyValue object) {
                return object.getName();
            }

            public KeyValue fromString(String string) {
                return null;
            }
        });
    }

    @Override
    public void init() {
        this.indexController.scrollContentPane.setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

            public void handle(KeyEvent e) {
                if (e.getCode() == KeyCode.ENTER) {
                    ProEffectController.this.sureAction();
                }
                e.consume();
            }
        });
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        HashMap<String, Object> param = new HashMap<String, Object>();
        HttpJson rsp = ProductSortSettingUtil.selectProGroupByClient(param);
        if (rsp.isSuccess()) {
            List proGroup = JSON.parseArray((String)rsp.getMsg(), GetProductSortOutData.class);
            this.inpProClass.setItems(FXCollections.observableArrayList((Collection)proGroup));
            this.inpProClass.converterProperty().set(new StringConverter<GetProductSortOutData>(){

                public String toString(GetProductSortOutData object) {
                    return object.getGspgNameSort();
                }

                public GetProductSortOutData fromString(String string) {
                    return null;
                }
            });
        } else {
            alert.setContentText(rsp.getMsg());
            alert.showAndWait();
        }
    }

    public TableView<ProEffectOutData> initTable(int pageNum) {
        ProEffectInData inData = new ProEffectInData();
        inData.setPageNum(pageNum + 1);
        inData.setPageSize(this.pageSize);
        inData.setProCode(this.inpProCode.getText());
        if (ObjectUtil.isNotEmpty(this.inpProClass.getValue())) {
            inData.setProClass(((GetProductSortOutData)this.inpProClass.getValue()).getGspgIdSort());
        }
        if (ObjectUtil.isNotNull(this.inpEffectDay.getValue())) {
            inData.setEffectDay(((KeyValue)this.inpEffectDay.getValue()).getValue());
        }
        PageInfo pageInfo = null;
        HttpJson rsp = ProEffectUtil.getProEffectList(inData);
        if (rsp.isSuccess()) {
            pageInfo = (PageInfo)JSON.parseObject((String)rsp.getMsg(), PageInfo.class);
            if (pageInfo != null && !CollectionUtils.isEmpty(pageInfo.getList())) {
                ArrayList<ProEffectOutData> listTemp = new ArrayList<ProEffectOutData>();
                for (int i = 0; i < pageInfo.getList().size(); ++i) {
                    String str = JSONObject.toJSONString(pageInfo.getList().get(i));
                    ProEffectOutData effectOutData = (ProEffectOutData)JSONObject.parseObject((String)str, ProEffectOutData.class);
                    listTemp.add(effectOutData);
                }
                pageInfo.setList(listTemp);
            }
        } else {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
            alert.showAndWait();
            return new TableView();
        }
        List<ProEffectOutData> dataList = null;
        if (pageInfo != null && !CollectionUtils.isEmpty(pageInfo.getList())) {
            this.pagination.setPageCount(pageInfo.getPages());
            dataList = pageInfo.getList();
        } else {
            this.pagination.setPageCount(this.defaultPageCount);
            dataList = new ArrayList();
        }
        this.observableTableList.clear();
        this.observableTableList = FXCollections.observableArrayList(dataList);
        this.bingTableCell();
        this.tableView.setItems(this.observableTableList);
        return this.tableView;
    }

    private void bingTableCell() {
        this.index.setCellValueFactory((Callback)new PropertyValueFactory(this.index.getId()));
        this.gssbBrId.setCellValueFactory((Callback)new PropertyValueFactory(this.gssbBrId.getId()));
        this.proCode.setCellValueFactory((Callback)new PropertyValueFactory(this.proCode.getId()));
        this.proName.setCellValueFactory((Callback)new PropertyValueFactory(this.proName.getId()));
        this.proSpecs.setCellValueFactory((Callback)new PropertyValueFactory(this.proSpecs.getId()));
        this.proUnit.setCellValueFactory((Callback)new PropertyValueFactory(this.proUnit.getId()));
        this.prcAmount.setCellValueFactory((Callback)new PropertyValueFactory(this.prcAmount.getId()));
        this.gssbBatchNo.setCellValueFactory((Callback)new PropertyValueFactory(this.gssbBatchNo.getId()));
        this.gssbBatch.setCellValueFactory((Callback)new PropertyValueFactory(this.gssbBatch.getId()));
        this.gssbVaildDate.setCellValueFactory((Callback)new PropertyValueFactory(this.gssbVaildDate.getId()));
        this.prcEffectDate.setCellValueFactory((Callback)new PropertyValueFactory(this.prcEffectDate.getId()));
        this.supplyCode.setCellValueFactory((Callback)new PropertyValueFactory(this.supplyCode.getId()));
        this.supplyName.setCellValueFactory((Callback)new PropertyValueFactory(this.supplyName.getId()));
        this.proFactoryName.setCellValueFactory((Callback)new PropertyValueFactory(this.proFactoryName.getId()));
        this.proPlace.setCellValueFactory((Callback)new PropertyValueFactory(this.proPlace.getId()));
        this.proForm.setCellValueFactory((Callback)new PropertyValueFactory(this.proForm.getId()));
        this.prcEffectDate.setCellFactory(column -> new TableCell<ProEffectOutData, String>(){

            protected void updateItem(String item, boolean empty) {
                super.updateItem(item, empty);
                this.setText(empty ? "" : ((String)this.getItem()).toString());
                this.setGraphic(null);
                TableRow currentRow = this.getTableRow();
                if (StrUtil.isNotBlank((CharSequence)item)) {
                    if (Integer.valueOf(item) <= 3) {
                        currentRow.setStyle("-fx-background-color:red");
                    } else if (Integer.valueOf(item) <= 15) {
                        currentRow.setStyle("-fx-background-color:orange");
                    } else if (Integer.valueOf(item) <= 30) {
                        currentRow.setStyle("-fx-background-color:saddleBrown");
                    }
                }
            }
        });
    }

    @FXML
    void sureAction() {
        this.initTable(0);
        this.pagination.setCurrentPageIndex(0);
    }

    @FXML
    private void reset() {
        this.inpProCode.clear();
        this.inpProClass.setValue(null);
        this.inpEffectDay.setValue(null);
    }

    public int getPageSize() {
        return this.pageSize;
    }

    public int getDefaultPageCount() {
        return this.defaultPageCount;
    }

    public ObservableList<ProEffectOutData> getObservableTableList() {
        return this.observableTableList;
    }

    public Pagination getPagination() {
        return this.pagination;
    }

    public ChoiceBox<KeyValue> getInpEffectDay() {
        return this.inpEffectDay;
    }

    public TextField getInpProCode() {
        return this.inpProCode;
    }

    public ChoiceBox<GetProductSortOutData> getInpProClass() {
        return this.inpProClass;
    }

    public TableColumn<ProEffectOutData, String> getIndex() {
        return this.index;
    }

    public TableColumn<ProEffectOutData, String> getGssbBrId() {
        return this.gssbBrId;
    }

    public TableColumn<ProEffectOutData, String> getProCode() {
        return this.proCode;
    }

    public TableColumn<ProEffectOutData, String> getProName() {
        return this.proName;
    }

    public TableColumn<ProEffectOutData, String> getProSpecs() {
        return this.proSpecs;
    }

    public TableColumn<ProEffectOutData, String> getProUnit() {
        return this.proUnit;
    }

    public TableColumn<ProEffectOutData, String> getPrcAmount() {
        return this.prcAmount;
    }

    public TableColumn<ProEffectOutData, String> getGssbBatchNo() {
        return this.gssbBatchNo;
    }

    public TableColumn<ProEffectOutData, String> getGssbBatch() {
        return this.gssbBatch;
    }

    public TableColumn<ProEffectOutData, String> getGssbVaildDate() {
        return this.gssbVaildDate;
    }

    public TableColumn<ProEffectOutData, String> getPrcEffectDate() {
        return this.prcEffectDate;
    }

    public TableColumn<ProEffectOutData, String> getSupplyCode() {
        return this.supplyCode;
    }

    public TableColumn<ProEffectOutData, String> getSupplyName() {
        return this.supplyName;
    }

    public TableColumn<ProEffectOutData, String> getProFactoryName() {
        return this.proFactoryName;
    }

    public TableColumn<ProEffectOutData, String> getProPlace() {
        return this.proPlace;
    }

    public TableColumn<ProEffectOutData, String> getProForm() {
        return this.proForm;
    }

    public TableView<ProEffectOutData> getTableView() {
        return this.tableView;
    }

    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public VBox getVBox() {
        return this.vBox;
    }

    public IndexController getIndexController() {
        return this.indexController;
    }

    public ObservableList<String> getClassOptions() {
        return this.classOptions;
    }

    public List<GsdcStatus> getProClass() {
        return this.proClass;
    }

    public void setObservableTableList(ObservableList<ProEffectOutData> observableTableList) {
        this.observableTableList = observableTableList;
    }

    public void setPagination(Pagination pagination) {
        this.pagination = pagination;
    }

    public void setInpEffectDay(ChoiceBox<KeyValue> inpEffectDay) {
        this.inpEffectDay = inpEffectDay;
    }

    public void setInpProCode(TextField inpProCode) {
        this.inpProCode = inpProCode;
    }

    public void setInpProClass(ChoiceBox<GetProductSortOutData> inpProClass) {
        this.inpProClass = inpProClass;
    }

    public void setIndex(TableColumn<ProEffectOutData, String> index) {
        this.index = index;
    }

    public void setGssbBrId(TableColumn<ProEffectOutData, String> gssbBrId) {
        this.gssbBrId = gssbBrId;
    }

    public void setProCode(TableColumn<ProEffectOutData, String> proCode) {
        this.proCode = proCode;
    }

    public void setProName(TableColumn<ProEffectOutData, String> proName) {
        this.proName = proName;
    }

    public void setProSpecs(TableColumn<ProEffectOutData, String> proSpecs) {
        this.proSpecs = proSpecs;
    }

    public void setProUnit(TableColumn<ProEffectOutData, String> proUnit) {
        this.proUnit = proUnit;
    }

    public void setPrcAmount(TableColumn<ProEffectOutData, String> prcAmount) {
        this.prcAmount = prcAmount;
    }

    public void setGssbBatchNo(TableColumn<ProEffectOutData, String> gssbBatchNo) {
        this.gssbBatchNo = gssbBatchNo;
    }

    public void setGssbBatch(TableColumn<ProEffectOutData, String> gssbBatch) {
        this.gssbBatch = gssbBatch;
    }

    public void setGssbVaildDate(TableColumn<ProEffectOutData, String> gssbVaildDate) {
        this.gssbVaildDate = gssbVaildDate;
    }

    public void setPrcEffectDate(TableColumn<ProEffectOutData, String> prcEffectDate) {
        this.prcEffectDate = prcEffectDate;
    }

    public void setSupplyCode(TableColumn<ProEffectOutData, String> supplyCode) {
        this.supplyCode = supplyCode;
    }

    public void setSupplyName(TableColumn<ProEffectOutData, String> supplyName) {
        this.supplyName = supplyName;
    }

    public void setProFactoryName(TableColumn<ProEffectOutData, String> proFactoryName) {
        this.proFactoryName = proFactoryName;
    }

    public void setProPlace(TableColumn<ProEffectOutData, String> proPlace) {
        this.proPlace = proPlace;
    }

    public void setProForm(TableColumn<ProEffectOutData, String> proForm) {
        this.proForm = proForm;
    }

    public void setTableView(TableView<ProEffectOutData> tableView) {
        this.tableView = tableView;
    }

    public void setScrollPane(ScrollPane scrollPane) {
        this.scrollPane = scrollPane;
    }

    public void setVBox(VBox vBox) {
        this.vBox = vBox;
    }

    public void setIndexController(IndexController indexController) {
        this.indexController = indexController;
    }

    public void setClassOptions(ObservableList<String> classOptions) {
        this.classOptions = classOptions;
    }

    public void setProClass(List<GsdcStatus> proClass) {
        this.proClass = proClass;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof ProEffectController)) {
            return false;
        }
        ProEffectController other = (ProEffectController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        if (this.getPageSize() != other.getPageSize()) {
            return false;
        }
        if (this.getDefaultPageCount() != other.getDefaultPageCount()) {
            return false;
        }
        ObservableList<ProEffectOutData> this$observableTableList = this.getObservableTableList();
        ObservableList<ProEffectOutData> other$observableTableList = other.getObservableTableList();
        if (this$observableTableList == null ? other$observableTableList != null : !this$observableTableList.equals(other$observableTableList)) {
            return false;
        }
        Pagination this$pagination = this.getPagination();
        Pagination other$pagination = other.getPagination();
        if (this$pagination == null ? other$pagination != null : !this$pagination.equals(other$pagination)) {
            return false;
        }
        ChoiceBox<KeyValue> this$inpEffectDay = this.getInpEffectDay();
        ChoiceBox<KeyValue> other$inpEffectDay = other.getInpEffectDay();
        if (this$inpEffectDay == null ? other$inpEffectDay != null : !this$inpEffectDay.equals(other$inpEffectDay)) {
            return false;
        }
        TextField this$inpProCode = this.getInpProCode();
        TextField other$inpProCode = other.getInpProCode();
        if (this$inpProCode == null ? other$inpProCode != null : !this$inpProCode.equals(other$inpProCode)) {
            return false;
        }
        ChoiceBox<GetProductSortOutData> this$inpProClass = this.getInpProClass();
        ChoiceBox<GetProductSortOutData> other$inpProClass = other.getInpProClass();
        if (this$inpProClass == null ? other$inpProClass != null : !this$inpProClass.equals(other$inpProClass)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$index = this.getIndex();
        TableColumn<ProEffectOutData, String> other$index = other.getIndex();
        if (this$index == null ? other$index != null : !this$index.equals(other$index)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$gssbBrId = this.getGssbBrId();
        TableColumn<ProEffectOutData, String> other$gssbBrId = other.getGssbBrId();
        if (this$gssbBrId == null ? other$gssbBrId != null : !this$gssbBrId.equals(other$gssbBrId)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$proCode = this.getProCode();
        TableColumn<ProEffectOutData, String> other$proCode = other.getProCode();
        if (this$proCode == null ? other$proCode != null : !this$proCode.equals(other$proCode)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$proName = this.getProName();
        TableColumn<ProEffectOutData, String> other$proName = other.getProName();
        if (this$proName == null ? other$proName != null : !this$proName.equals(other$proName)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$proSpecs = this.getProSpecs();
        TableColumn<ProEffectOutData, String> other$proSpecs = other.getProSpecs();
        if (this$proSpecs == null ? other$proSpecs != null : !this$proSpecs.equals(other$proSpecs)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$proUnit = this.getProUnit();
        TableColumn<ProEffectOutData, String> other$proUnit = other.getProUnit();
        if (this$proUnit == null ? other$proUnit != null : !this$proUnit.equals(other$proUnit)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$prcAmount = this.getPrcAmount();
        TableColumn<ProEffectOutData, String> other$prcAmount = other.getPrcAmount();
        if (this$prcAmount == null ? other$prcAmount != null : !this$prcAmount.equals(other$prcAmount)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$gssbBatchNo = this.getGssbBatchNo();
        TableColumn<ProEffectOutData, String> other$gssbBatchNo = other.getGssbBatchNo();
        if (this$gssbBatchNo == null ? other$gssbBatchNo != null : !this$gssbBatchNo.equals(other$gssbBatchNo)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$gssbBatch = this.getGssbBatch();
        TableColumn<ProEffectOutData, String> other$gssbBatch = other.getGssbBatch();
        if (this$gssbBatch == null ? other$gssbBatch != null : !this$gssbBatch.equals(other$gssbBatch)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$gssbVaildDate = this.getGssbVaildDate();
        TableColumn<ProEffectOutData, String> other$gssbVaildDate = other.getGssbVaildDate();
        if (this$gssbVaildDate == null ? other$gssbVaildDate != null : !this$gssbVaildDate.equals(other$gssbVaildDate)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$prcEffectDate = this.getPrcEffectDate();
        TableColumn<ProEffectOutData, String> other$prcEffectDate = other.getPrcEffectDate();
        if (this$prcEffectDate == null ? other$prcEffectDate != null : !this$prcEffectDate.equals(other$prcEffectDate)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$supplyCode = this.getSupplyCode();
        TableColumn<ProEffectOutData, String> other$supplyCode = other.getSupplyCode();
        if (this$supplyCode == null ? other$supplyCode != null : !this$supplyCode.equals(other$supplyCode)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$supplyName = this.getSupplyName();
        TableColumn<ProEffectOutData, String> other$supplyName = other.getSupplyName();
        if (this$supplyName == null ? other$supplyName != null : !this$supplyName.equals(other$supplyName)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$proFactoryName = this.getProFactoryName();
        TableColumn<ProEffectOutData, String> other$proFactoryName = other.getProFactoryName();
        if (this$proFactoryName == null ? other$proFactoryName != null : !this$proFactoryName.equals(other$proFactoryName)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$proPlace = this.getProPlace();
        TableColumn<ProEffectOutData, String> other$proPlace = other.getProPlace();
        if (this$proPlace == null ? other$proPlace != null : !this$proPlace.equals(other$proPlace)) {
            return false;
        }
        TableColumn<ProEffectOutData, String> this$proForm = this.getProForm();
        TableColumn<ProEffectOutData, String> other$proForm = other.getProForm();
        if (this$proForm == null ? other$proForm != null : !this$proForm.equals(other$proForm)) {
            return false;
        }
        TableView<ProEffectOutData> this$tableView = this.getTableView();
        TableView<ProEffectOutData> other$tableView = other.getTableView();
        if (this$tableView == null ? other$tableView != null : !this$tableView.equals(other$tableView)) {
            return false;
        }
        ScrollPane this$scrollPane = this.getScrollPane();
        ScrollPane other$scrollPane = other.getScrollPane();
        if (this$scrollPane == null ? other$scrollPane != null : !this$scrollPane.equals(other$scrollPane)) {
            return false;
        }
        VBox this$vBox = this.getVBox();
        VBox other$vBox = other.getVBox();
        if (this$vBox == null ? other$vBox != null : !this$vBox.equals(other$vBox)) {
            return false;
        }
        IndexController this$indexController = this.getIndexController();
        IndexController other$indexController = other.getIndexController();
        if (this$indexController == null ? other$indexController != null : !(this$indexController).equals(other$indexController)) {
            return false;
        }
        ObservableList<String> this$classOptions = this.getClassOptions();
        ObservableList<String> other$classOptions = other.getClassOptions();
        if (this$classOptions == null ? other$classOptions != null : !this$classOptions.equals(other$classOptions)) {
            return false;
        }
        List<GsdcStatus> this$proClass = this.getProClass();
        List<GsdcStatus> other$proClass = other.getProClass();
        return !(this$proClass == null ? other$proClass != null : !(this$proClass).equals(other$proClass));
    }

    protected boolean canEqual(Object other) {
        return other instanceof ProEffectController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        result = result * 59 + this.getPageSize();
        result = result * 59 + this.getDefaultPageCount();
        ObservableList<ProEffectOutData> $observableTableList = this.getObservableTableList();
        result = result * 59 + ($observableTableList == null ? 43 : $observableTableList.hashCode());
        Pagination $pagination = this.getPagination();
        result = result * 59 + ($pagination == null ? 43 : $pagination.hashCode());
        ChoiceBox<KeyValue> $inpEffectDay = this.getInpEffectDay();
        result = result * 59 + ($inpEffectDay == null ? 43 : $inpEffectDay.hashCode());
        TextField $inpProCode = this.getInpProCode();
        result = result * 59 + ($inpProCode == null ? 43 : $inpProCode.hashCode());
        ChoiceBox<GetProductSortOutData> $inpProClass = this.getInpProClass();
        result = result * 59 + ($inpProClass == null ? 43 : $inpProClass.hashCode());
        TableColumn<ProEffectOutData, String> $index = this.getIndex();
        result = result * 59 + ($index == null ? 43 : $index.hashCode());
        TableColumn<ProEffectOutData, String> $gssbBrId = this.getGssbBrId();
        result = result * 59 + ($gssbBrId == null ? 43 : $gssbBrId.hashCode());
        TableColumn<ProEffectOutData, String> $proCode = this.getProCode();
        result = result * 59 + ($proCode == null ? 43 : $proCode.hashCode());
        TableColumn<ProEffectOutData, String> $proName = this.getProName();
        result = result * 59 + ($proName == null ? 43 : $proName.hashCode());
        TableColumn<ProEffectOutData, String> $proSpecs = this.getProSpecs();
        result = result * 59 + ($proSpecs == null ? 43 : $proSpecs.hashCode());
        TableColumn<ProEffectOutData, String> $proUnit = this.getProUnit();
        result = result * 59 + ($proUnit == null ? 43 : $proUnit.hashCode());
        TableColumn<ProEffectOutData, String> $prcAmount = this.getPrcAmount();
        result = result * 59 + ($prcAmount == null ? 43 : $prcAmount.hashCode());
        TableColumn<ProEffectOutData, String> $gssbBatchNo = this.getGssbBatchNo();
        result = result * 59 + ($gssbBatchNo == null ? 43 : $gssbBatchNo.hashCode());
        TableColumn<ProEffectOutData, String> $gssbBatch = this.getGssbBatch();
        result = result * 59 + ($gssbBatch == null ? 43 : $gssbBatch.hashCode());
        TableColumn<ProEffectOutData, String> $gssbVaildDate = this.getGssbVaildDate();
        result = result * 59 + ($gssbVaildDate == null ? 43 : $gssbVaildDate.hashCode());
        TableColumn<ProEffectOutData, String> $prcEffectDate = this.getPrcEffectDate();
        result = result * 59 + ($prcEffectDate == null ? 43 : $prcEffectDate.hashCode());
        TableColumn<ProEffectOutData, String> $supplyCode = this.getSupplyCode();
        result = result * 59 + ($supplyCode == null ? 43 : $supplyCode.hashCode());
        TableColumn<ProEffectOutData, String> $supplyName = this.getSupplyName();
        result = result * 59 + ($supplyName == null ? 43 : $supplyName.hashCode());
        TableColumn<ProEffectOutData, String> $proFactoryName = this.getProFactoryName();
        result = result * 59 + ($proFactoryName == null ? 43 : $proFactoryName.hashCode());
        TableColumn<ProEffectOutData, String> $proPlace = this.getProPlace();
        result = result * 59 + ($proPlace == null ? 43 : $proPlace.hashCode());
        TableColumn<ProEffectOutData, String> $proForm = this.getProForm();
        result = result * 59 + ($proForm == null ? 43 : $proForm.hashCode());
        TableView<ProEffectOutData> $tableView = this.getTableView();
        result = result * 59 + ($tableView == null ? 43 : $tableView.hashCode());
        ScrollPane $scrollPane = this.getScrollPane();
        result = result * 59 + ($scrollPane == null ? 43 : $scrollPane.hashCode());
        VBox $vBox = this.getVBox();
        result = result * 59 + ($vBox == null ? 43 : $vBox.hashCode());
        IndexController $indexController = this.getIndexController();
        result = result * 59 + ($indexController == null ? 43 : ($indexController).hashCode());
        ObservableList<String> $classOptions = this.getClassOptions();
        result = result * 59 + ($classOptions == null ? 43 : $classOptions.hashCode());
        List<GsdcStatus> $proClass = this.getProClass();
        result = result * 59 + ($proClass == null ? 43 : ($proClass).hashCode());
        return result;
    }

    public String toString() {
        return "ProEffectController(pageSize=" + this.getPageSize() + ", defaultPageCount=" + this.getDefaultPageCount() + ", observableTableList=" + this.getObservableTableList() + ", pagination=" + this.getPagination() + ", inpEffectDay=" + this.getInpEffectDay() + ", inpProCode=" + this.getInpProCode() + ", inpProClass=" + this.getInpProClass() + ", index=" + this.getIndex() + ", gssbBrId=" + this.getGssbBrId() + ", proCode=" + this.getProCode() + ", proName=" + this.getProName() + ", proSpecs=" + this.getProSpecs() + ", proUnit=" + this.getProUnit() + ", prcAmount=" + this.getPrcAmount() + ", gssbBatchNo=" + this.getGssbBatchNo() + ", gssbBatch=" + this.getGssbBatch() + ", gssbVaildDate=" + this.getGssbVaildDate() + ", prcEffectDate=" + this.getPrcEffectDate() + ", supplyCode=" + this.getSupplyCode() + ", supplyName=" + this.getSupplyName() + ", proFactoryName=" + this.getProFactoryName() + ", proPlace=" + this.getProPlace() + ", proForm=" + this.getProForm() + ", tableView=" + this.getTableView() + ", scrollPane=" + this.getScrollPane() + ", vBox=" + this.getVBox() + ", indexController=" + this.getIndexController() + ", classOptions=" + this.getClassOptions() + ", proClass=" + this.getProClass() + ")";
    }
}

